/*
	YoghurtGum - 2D Game Engine

	Copyright 2009-2011 Quinten Lansu
	
	Licensed under the Apache License, Version 2.0 (the "License"); you may not 
	use this file except in compliance with the License. You may obtain a copy 
	of the License at 
		
		http://www.apache.org/licenses/LICENSE-2.0 
		
	Unless required by applicable law or agreed to in writing, software 
	distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
	WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
	License for the specific language governing permissions and limitations 
	under the License. 
*/

#ifndef _YGSOURCESWM6_H_
#define _YGSOURCESWM6_H_

//namespace YoghurtGum
//{

	#pragma warning (disable : 4221) // no public symbols found

	#include <stdio.h>

	// File Input/Output
	#include <fstream>
	// Time
	#include <time.h>
	// String
	#include <string>
	// Vectors
	#include <vector>

	#include <iostream>

	#define YG_MAIN				int WINAPI WinMain(HINSTANCE a_Data, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)

	// _MAX_PATH
	#include <stdlib.h>

	#pragma comment(linker, "/nodefaultlib:oldnames.lib")

	#ifdef _X86_
		#pragma comment(linker, "/nodefaultlib:libc.lib")
		#pragma comment(linker, "/nodefaultlib:libcd.lib")
		#pragma comment(linker, "/nodefaultlib:oldnames.lib")
	#endif

	#undef WIN32_LEAN_AND_MEAN
	#define WIN32_LEAN_AND_MEAN
	#include <windows.h>
	#include <windowsx.h>

	#include <winerror.h>
	#include <mmsystem.h>

	#include <unknwn.h>

 	// Files
	#include <iosfwd>
	#include <xiosbase>

	#include <aygshell.h>

	#pragma comment(linker, "/nodefaultlib:libc.lib")
	#pragma comment(linker, "/nodefaultlib:libcd.lib")

	// NOTE - this value is not strongly correlated to the Windows CE OS version being targeted
	//#define WINVER _WIN32_WCE

	#include <ceconfig.h>
	#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
		#define SHELL_AYGSHELL
	#endif

	#ifdef _CE_DCOM
		#define _ATL_APARTMENT_THREADED
	#endif

	//#include <windows.h>
	#include <commctrl.h>

	#include <aygshell.h>
	#pragma comment(lib, "aygshell.lib") 


	// Windows Header Files:
	//#include <windows.h>

	// C RunTime Header Files
	//#include <stdlib.h>
	#include <malloc.h>
	#include <memory.h>
	#include <tchar.h>

	#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
		#ifndef _DEVICE_RESOLUTION_AWARE
			#define _DEVICE_RESOLUTION_AWARE
		#endif
	#endif

	#ifdef _DEVICE_RESOLUTION_AWARE
		#include "DeviceResolutionAware.h"
	#endif

	/*#ifdef _DLL // /MD
		#if defined(_DEBUG)
			#pragma comment(lib, "msvcrtd.lib")
		#else
			#pragma comment(lib, "msvcrt.lib")
		#endif
	#else // /MT
		#if defined(_DEBUG)
			#pragma comment(lib, "libcmtd.lib")
		#else
			#pragma comment(lib, "libcmt.lib")
		#endif
	#endif*/

	#if _WIN32_WCE < 0x500 && ( defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP) )
		#pragma comment(lib, "ccrtrtti.lib")
		#ifdef _X86_	
			#if defined(_DEBUG)
				#pragma comment(lib, "libcmtx86d.lib")
			#else
				#pragma comment(lib, "libcmtx86.lib")
			#endif
		#endif
	#endif


	#define IDS_APP_TITLE					1
	#define IDC_WIN32SMARTDEVICELEARNING	2
	#define IDI_WIN32SMARTDEVICELEARNING	101
	#define IDR_MENU						102
	#define IDS_OK                          103
	#define IDS_HELP						104
	#define IDD_ABOUTBOX					105
	#define IDD_ABOUTBOX_WIDE				106
	#define IDC_STATIC_1					201
	#define IDC_STATIC_2					202
	#define IDC_STATIC_3					203
	#define IDM_OK							40000
	#define IDM_HELP						40001
	#define IDM_HELP_ABOUT					40002
	#ifndef IDC_STATIC
		#define IDC_STATIC					-1
	#endif

	// Next default values for new objects
	// 
	#ifdef APSTUDIO_INVOKED
	#ifndef APSTUDIO_READONLY_SYMBOLS
	#define _APS_NO_MFC					130
	#define _APS_NEXT_RESOURCE_VALUE	129
	#define _APS_NEXT_COMMAND_VALUE		32771
	#define _APS_NEXT_CONTROL_VALUE		1000
	#define _APS_NEXT_SYMED_VALUE		110
	#endif
	#endif

	#include <ceconfig.h>
	#include <wtypes.h>

	#if defined(WIN32_PLATFORM_PSPC) || defined(WIN32_PLATFORM_WFSP)
		#define SHELL_AYGSHELL
	#endif

	#ifdef _CE_DCOM	
		#define _ATL_APARTMENT_THREADED
	#endif

	#include <altcecrt.h>

	#include <ctime>

	// IID_IDirect3DMobileBaseTexture
	// 

//}; // namespace YoghurtGum
	
#endif